package br.com.formulavendas.domainmodel;

// default package

import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * Venda entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "venda")
public class Venda extends EntityBase {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	// Fields
	@Id
	@SequenceGenerator(name = "venda_id_seq", sequenceName = "venda_id_seq", allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "venda_id_seq")
	private Integer id;
	
	@ManyToOne
	@JoinColumn(name = "id_unidade")
	private Unidade unidade;
	
	@ManyToOne
	@JoinColumn(name = "id_funcionario")
	private Funcionario funcionario;
	private Date data;
	private float totalvenda;
	private boolean vendacancelado;
	private String tipopagamento;
	
	@Column
	@ElementCollection(targetClass = Produto.class)
	private List<Produto> produtos;

	// Constructors

	/** default constructor */
	public Venda() {
	}

	/** full constructor */
	public Venda(Unidade unidade, Funcionario funcionario, Date data,
			float totalvenda, boolean vendacancelado, String tipopagamento,
			List<Produto> produtos) {
		this.unidade = unidade;
		this.funcionario = funcionario;
		this.data = data;
		this.totalvenda = totalvenda;
		this.vendacancelado = vendacancelado;
		this.tipopagamento = tipopagamento;
		this.produtos = produtos;
	}

	// Property accessors

	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Unidade getUnidade() {
		return this.unidade;
	}

	public void setUnidade(Unidade unidade) {
		this.unidade = unidade;
	}

	public Funcionario getFuncionario() {
		return this.funcionario;
	}

	public void setFuncionario(Funcionario funcionario) {
		this.funcionario = funcionario;
	}

	public Date getData() {
		return this.data;
	}

	public void setData(Date data) {
		this.data = data;
	}

	public float getTotalvenda() {
		return this.totalvenda;
	}

	public void setTotalvenda(float totalvenda) {
		this.totalvenda = totalvenda;
	}

	public boolean getVendacancelado() {
		return this.vendacancelado;
	}

	public void setVendacancelado(boolean vendacancelado) {
		this.vendacancelado = vendacancelado;
	}

	public String getTipopagamento() {
		return this.tipopagamento;
	}

	public void setTipopagamento(String tipopagamento) {
		this.tipopagamento = tipopagamento;
	}

	public List<Produto> getProdutos() {
		return this.produtos;
	}

	public void setProdutos(List<Produto> produtos) {
		this.produtos = produtos;
	}

}